Skip to content

feat: file-based keychain fallback for headless Linux/WSL - #103

Merged
its-mash merged 2 commits into
mainfrom
fix/linux-keychain-fallback
Feb 16, 2026
Merged

feat: file-based keychain fallback for headless Linux/WSL#103
its-mash merged 2 commits into
mainfrom
fix/linux-keychain-fallback

Conversation

@its-mash

Copy link
Copy Markdown
Member

Summary

  • Keychain fallback: On Linux without Secret Service (WSL, headless servers, containers), the app now falls back to file-based key storage (~/.local/share/com.mcpmux.desktop/keys/ with 0600 permissions) instead of panicking on startup
  • GPG signing: Release artifacts (.deb, .rpm, .AppImage, .dmg, .exe, .msi) now get detached GPG signatures (.sig) uploaded to GitHub Releases, fixing the install script's "No signature file found" warning
  • Package naming: Set mainBinaryName: "mcpmux" so .deb package name is mcpmux (not mcp-mux), consistent with the install script and binary name
  • Soft dependencies: Moved libsecret/gnome-keyring from depends to recommends in .deb/.rpm so headless installs aren't blocked

Test plan

  • Built and installed .deb on WSL Ubuntu (no gnome-keyring)
  • Verified app starts successfully with file-based fallback
  • cargo test --workspace --lib — all 32 tests pass
  • cargo clippy --workspace -- -D warnings — clean
  • CI validates Linux build + clippy on #[cfg(unix)] code paths

On Linux without Secret Service (WSL, headless servers, containers),
the app previously panicked on startup. Now falls back to file-based
key storage (~/.local/share/com.mcpmux.desktop/keys/) with 0600
permissions, logging a warning instead of crashing.

Also:
- Add GPG detached signatures (.sig) for release artifacts
- Set mainBinaryName to "mcpmux" for consistent .deb package naming
- Move libsecret/gnome-keyring from depends to recommends

Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
@its-mash
its-mash merged commit 9b60e0b into main Feb 16, 2026
12 checks passed
@its-mash
its-mash deleted the fix/linux-keychain-fallback branch February 16, 2026 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant